package com.lht.cozyCloud.bee.service;

import com.lht.cozyCloud.bee.domain.MessageTemplate;

import java.util.List;

/**
 * 信息模板服务
 */
public interface MessageTemplateService {
    /**
     * 根据类型查询模板
     * @param type
     * @return
     */
    public MessageTemplate selectTemplateByType(String type);

    /**
     * 主键查询
     *
     * @param templateId 主键
     * @return 参数配置信息
     */
    public MessageTemplate selectTemplateById(Long templateId);


    public List<MessageTemplate> selectTemplateByIds(Long[] templateIds);

    /**
     * 查询列表
     *
     * @param template 参数配置信息
     * @return 参数配置集合
     */
    public List<MessageTemplate> selectTemplateList(MessageTemplate template);

    /**
     * 新增参数配置
     *
     * @param template 参数配置信息
     * @return 结果
     */
    public int insertTemplate(MessageTemplate template);

    /**
     * 修改参数配置
     *
     * @param template 参数配置信息
     * @return 结果
     */
    public int updateTemplate(MessageTemplate template);


    // 单个删除
    void deleteTemplateById(Long templateId);

    /**
     * 批量删除参数信息
     *
     * @param templateIds 需要删除的参数ID
     */
    public void deleteTemplateByIds(Long[] templateIds);

    /**
     * 加载参数缓存数据
     */
    public void loadingTemplateCache();

    /**
     * 清空参数缓存数据
     */
    public void clearTemplateCache();

    /**
     * 重置参数缓存数据
     */
    public void resetTemplateCache();

    /**
     * 校验参数键名是否唯一
     *
     * @param template 参数信息
     * @return 结果
     */
    public boolean checkTemplateTypeUnique(MessageTemplate template);
}
